package com.liang.design.event;

import com.liang.design.ICouponDiscount;

import java.math.BigDecimal;
import java.util.Map;

/**
 * @author lsm
 * @ClassName MJCouponDIscount.java
 * @Description 满减
 * @createTime 2023年12月06日 16:47:00
 */
public class MJCouponDIscount implements ICouponDiscount<Map<String,String>> {
    /**
     * 满减计算
     * 1. 判断满⾜足x元后-n元，否则不不减
     * 2. 最低⽀支付⾦金金额1元
     */
    public BigDecimal discountAmount(Map<String,String> couponInfo, BigDecimal skuPrice) {
        String x = couponInfo.get("x");
        String o = couponInfo.get("n");
        // ⼩小于商品⾦金金额条件的，直接返回商品原价
        if (skuPrice.compareTo(new BigDecimal(x)) < 0)
            return skuPrice;
        // 减去优惠⾦金金额判断
        BigDecimal discountAmount = skuPrice.subtract(new BigDecimal(o));
        if (discountAmount.compareTo(BigDecimal.ZERO) < 1)
            return BigDecimal.ONE;
        return discountAmount;
    }
}
